package org.jeecg.modules.zcgl.vo.statistical;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.common.constant.CommonConstant;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;


/**
 * @author Administrator
 */
@Data
public class ContractParameterVo {

    @Excel(name = "合同编号", width = 15)
    @ApiModelProperty(value = "合同编号")
    private String contractNum;

    @Excel(name = "合同类型", width = 15, dicCode = "zcgl_contract_type")
    @Dict(dicCode = "zcgl_contract_type")
    @ApiModelProperty(value = "合同类型")
    private Integer type;

    @Excel(name = "客户名称", width = 15, dictTable = "zcgl_customer_info", dicText = "CONCAT_WS( ';', `name`, phone )", dicCode = "id", pullDown = false)
    @Dict(dictTable = "zcgl_customer_info", dicText = "CONCAT_WS( ' ', `name`, phone )", dicCode = "id")
    @ApiModelProperty(value = "客户名称")
    private String customerId;

    @Excel(name = "出租方", width = 15, dictTable = "sys_depart", dicText = "depart_name", dicCode = "id", dicKey ="parent_id='" + CommonConstant.BASE_DEPART_ID + "'")
    @Dict(dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
    @ApiModelProperty(value = "出租方公司名称")
    private String rentCompanyId;

    @Excel(name = "管理方", width = 15, dictTable = "sys_depart", dicText = "depart_name", dicCode = "id", dicKey ="parent_id='" + CommonConstant.BASE_DEPART_ID + "'")
    @Dict(dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
    @ApiModelProperty(value = "管理方")
    private String companyId;

    @Excel(name = "身份证号/信用代码", width = 15)
    @ApiModelProperty(value = "身份证/信用代码")
    private String code;

    @Excel(name = "联系电话", width = 15)
    @ApiModelProperty(value = "联系电话")
    private String phone;

    /**
     * 取之于部门
     */
    @Excel(name = "出租方名称", width = 15)
    @ApiModelProperty(value = "出租方名称")
    private String rentCompanyName;


    @Excel(name = "资产编码", width = 15)
    @ApiModelProperty(value = "资产编码")
    private String assetCode;

    @Excel(name = "资产名称", width = 15, dictTable = "zcgl_asset_info", dicText = "asset_name", dicCode = "id", pullDown = false)
    @Dict(dictTable = "zcgl_asset_info", dicText = "asset_name", dicCode = "id")
    @ApiModelProperty(value = "资产名称")
    private String assetId;

    @Excel(name = "门牌号/地址（资产明细）", width = 15, dictTable = "zcgl_asset_info_sub", dicText = "room_name", dicCode = "id", pullDown = false)
    @Dict(dictTable = "zcgl_asset_info_sub", dicText = "room_name", dicCode = "id")
    @ApiModelProperty(value = "门牌号/地址（资产明细）")
    private String assetSubIds;

    @Excel(name = "经营业态", width = 15/*, dicCode = "zcgl_manage_status"*/)
    @ApiModelProperty(value = "经营业态")
    private String manageStatus;

    @Excel(name = "出租面积", width = 15)
    @ApiModelProperty(value = "出租面积")
    private BigDecimal rentableArea;

    @Excel(name = "租金单价", width = 15)
    @ApiModelProperty(value = "租金单价")
    private BigDecimal rentPrice;

    @Excel(name = "月租金", width = 15)
    @ApiModelProperty(value = "月租金")
    private BigDecimal monthlyRent;

    @Excel(name = "保证金", width = 15)
    @ApiModelProperty(value = "保证金")
    private BigDecimal cashDeposit;

    @Excel(name = "保证金缴纳方式", width = 15)
    @ApiModelProperty(value = "保证金缴纳方式")
    private String cashDepositPayType;

    @Excel(name = "保证金缴纳时间", width = 15)
    @ApiModelProperty(value = "保证金缴纳时间")
    private String cashDepositPayDate;

    @Excel(name = "其他费用", width = 15)
    @ApiModelProperty(value = "其他费用")
    private String otherCash;

    @Excel(name = "合同总价", width = 15)
    @ApiModelProperty(value = "合同总价")
    private String contractCash;

    @Excel(name = "当前已发生费用", width = 15)
    @ApiModelProperty(value = "当前已发生费用")
    private String currentCash;

    @Excel(name = "当前已缴纳费用", width = 15)
    @ApiModelProperty(value = "当前已缴纳费用")
    private String currentPayCash;

    @Excel(name = "当前已欠费用", width = 15)
    @ApiModelProperty(value = "当前已欠费用")
    private String currentOweCash;

    @Excel(name = "合同租金浮动比例", width = 15)
    @ApiModelProperty(value = "租金上下浮比例")
    private BigDecimal contractChangeRatio;

    @Excel(name = "租金上下浮金额", width = 15)
    @ApiModelProperty(value = "租金上下浮金额")
    private String contractChangeCash;

    @Excel(name = "租金支付方式", width = 15, dicCode = "zcgl_lease_contract_paymenttype")
    @ApiModelProperty(value = "支付方式")
    @Dict(dicCode = "zcgl_lease_contract_paymenttype")
    private Integer modeOfPayment;

    @Excel(name = "合同期限", width = 15)
    @ApiModelProperty(value = "合同期限")
    private String contractPeriod;

    @Excel(name = "起租时间", width = 15)
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "起租时间")
    private Date rentStartTime;

    @Excel(name = "到租时间", width = 15)
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "到租时间")
    private Date rentEndTime;

    @Excel(name = "免租开始日期", width = 15)
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "免租开始日期")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Date rentHolidayStart;

    @Excel(name = "免租结束日期", width = 15)
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "免租结束日期")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Date rentHolidayEnd;

    /**
     * 取之于资产管理员
     */
    @Excel(name = "征收员", width = 15,dictTable = "sys_user", dicText = "realname", dicCode = "id")
    @ApiModelProperty(value = "征收员")
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "id")
    private String managerId;

    @Excel(name = "提前缴费天数", width = 15)
    @ApiModelProperty(value = "提前缴费天数")
    private Integer beforeDay;

    @Excel(name = "签约日期", width = 15)
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "签约日期")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Date signingDate;

    @Excel(name = "合同其他约定条款", width = 15)
    @ApiModelProperty(value = "合同其他约定条款")
    private String supplementaryTerms;

    @Excel(name = "合同期限", width = 15,dicCode = "zcgl_contract_status")
    @Dict(dicCode = "zcgl_contract_status")
    @ApiModelProperty(value = "合同状态")
    private Integer status;

    @Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;



    //查询参数
    private String selections;

    @ApiModelProperty(value = "出租面积大于")
    private String rentableAreaMax;

    @ApiModelProperty(value = "出租面积小于")
    private String rentableAreaMin;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "起租时间")
    private Date rentStartTime_begin;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "起租时间")
    private Date rentStartTime_end;


    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "到租时间")
    private Date rentEndTime_begin;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "到租时间")
    private Date rentEndTime_end;

    @ApiModelProperty(value = "征收员")
    private String userName;
}
